package com.zp.drug.entity.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.zp.common.core.entity.BaseEntity;
import com.zp.common.excel.annotation.ExcelDictFormat;
import com.zp.common.excel.convert.ExcelDictConvert;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;


/**
 * 药品入库主表视图对象
 *
 * @author zhang peng
 * @ date 2023-06-21
 */
@Data
@ExcelIgnoreUnannotated
public class DrugImportMasterVo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private String id;

    /**
     * 入库单号
     */
    @ExcelProperty(value = "入库单号")
    private String documentNo;

    /**
     * 库存单位
     */
    private String storageId;

    @ExcelProperty(value = "库存单位")
    private String storageName;

    /**
     * 入库日期
     */
    @ExcelProperty(value = "入库日期")
    private Date importDate;

    /**
     * 供货方(采购时的厂商)
     */
    @ExcelProperty(value = "供货方(采购时的厂商)id")
    private String supplier;

    @ExcelProperty(value = "供货方(采购时的厂商)")
    private String supplierName;

    /**
     * 供货方(其他入库方式的供货方)
     */
    @ExcelProperty(value = "供货方(其他入库方式的供货方)Id")
    private String storageFrom;

    @ExcelProperty(value = "供货方(其他入库方式的供货方)")
    private String storageFromName;

    /**
     * 应付款
     */
    @ExcelProperty(value = "应付款")
    private BigDecimal accountReceivable;

    /**
     * 已付款
     */
    @ExcelProperty(value = "已付款")
    private BigDecimal accountPayed;

    /**
     * 附加费
     */
    @ExcelProperty(value = "附加费")
    private BigDecimal additionalFee;

    /**
     * 入库方式
     */
    @ExcelProperty(value = "入库方式类别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "drug_storage_type")
    private String importClass;

    /**
     * 付款方式(采购入库,付款方式必填)
     */
    @ExcelProperty(value = "付款方式(采购入库,付款方式必填)")
    private String accountType;

    /**
     * 记帐标志
     */
    @ExcelProperty(value = "记帐标志")
    private String accountIndicator;

    /**
     * 记账日期
     */
    @ExcelProperty(value = "记账日期 ")
    private Date acctDate;

    /**
     * 记账人
     */
    @ExcelProperty(value = "记账人")
    private String acctOperator;

    /**
     * 上账标志
     */
    @ExcelProperty(value = "上账标志")
    private String tally;

    /**
     * 上账日期
     */
    @ExcelProperty(value = "上账日期 ")
    private Date tallyDate;

    /**
     * 上账人
     */
    @ExcelProperty(value = "上账人")
    private String tallyOperator;

    /**
     * 机构ID
     */
    @ExcelProperty(value = "机构ID")
    private String orgId;

    /**
     * 凭证号
     */
    @ExcelProperty(value = "凭证号")
    private String voucherNo;

    /**
     * 纠错入库的单据号
     */
    @ExcelProperty(value = "纠错入库的单据号")
    private String recoveryDocNo;

    /**
     * 备注信息
     */
    @ExcelProperty(value = "备注信息")
    private String remarks;

    /**
     * 是否暂存 Y:是 N:否
     */
    @ExcelProperty(value = "是否暂存")
    private String isStaging;
}
